package kr.co.nextree.android.sample.activity;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.OnGestureListener;
import android.widget.TextView;

public class GestureTestActivity extends Activity implements OnGestureListener {
	private GestureDetector gd;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		gd = new GestureDetector(this);
		
		TextView text = new TextView(this);
		text.setText("제스쳐테스트");
		text.setTextColor(Color.GREEN);
		text.setTextSize(20);
		setContentView(text);
		
	}
	
	
	//Activity의  onTouchEvent가 발생되면 이것을 GestureDetector의 onTouchEvent로 
	//등록해줌으로써 액티비티의 이벤트를 제스쳐로 처리되도록 한다.
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		return gd.onTouchEvent(event);
	}
	
	//터치하려고 손을 대기만 해도 발생되는 이벤트 모든 제스쳐의 시작
	@Override
	public boolean onDown(MotionEvent e) {
		// TODO Auto-generated method stub
		return false;
	}

	//터치하면 호출됨 100ms 정도 누를때 호출됨
	@Override
	public void onShowPress(MotionEvent e) {
		// TODO Auto-generated method stub

	}

	//한번 터치하고 다음에 다시 터치 이벤트가 들어오지 않았을때,
	//한번 터치가 확실하다고 확인 시켜주는 이벤트
	@Override
	public boolean onSingleTapUp(MotionEvent e) {
		// TODO Auto-generated method stub
		return false;
	}

	//드래그시 호출. 최소 30ms 이후부터는  onScroll 이베트가 발생할 수 있으면,
	//플링시키지 않고 살면시 손을 떼면 끝까지 onScroll 이벤트만 연속으로 발생
	@Override
	public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
			float distanceY) {
		// TODO Auto-generated method stub
		return false;
	}

	//길게 누르면 호출됨 (약 590ms ~ 600ms 정도 누를 때 호출됨)
	@Override
	public void onLongPress(MotionEvent e) {
		// TODO Auto-generated method stub

	}

	//드래그 하다 띄면 호출됨
	//onScroll 이벤트와  비슷하지만 끝에 살짝 튕기는 동작에는 발생되는 이벤트
	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		// TODO Auto-generated method stub
		return false;
	}

}
